package com.ruoyi.system.service.impl;

import java.util.Date;
import java.util.List;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.ruoyi.system.domain.ZtfMainTables;
import com.ruoyi.system.domain.dto.ZftMyManagerDTO;
import com.ruoyi.system.result.PageResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.ZftMyManagerMapper;
import com.ruoyi.system.domain.ZftMyManager;
import com.ruoyi.system.service.IZftMyManagerService;

/**
 * 我的管理，我的课程记录、违规记录、意见反馈、版本信息Service业务层处理
 * 
 * @author ruoyi
 * @date 2025-06-06
 */
@Service
public class ZftMyManagerServiceImpl implements IZftMyManagerService 
{
    @Autowired
    private ZftMyManagerMapper zftMyManagerMapper;

    /**
     * 查询我的管理，我的课程记录、违规记录、意见反馈、版本信息
     * 
     * @param myUuid 我的管理，我的课程记录、违规记录、意见反馈、版本信息主键
     * @return 我的管理，我的课程记录、违规记录、意见反馈、版本信息
     */
    @Override
    public ZftMyManager selectZftMyManagerByMyUuid(String myUuid)
    {
        return zftMyManagerMapper.selectZftMyManagerByMyUuid(myUuid);
    }

    /**
     * 查询我的管理，我的课程记录、违规记录、意见反馈、版本信息列表
     * 
     * @param zftMyManager 我的管理，我的课程记录、违规记录、意见反馈、版本信息
     * @return 我的管理，我的课程记录、违规记录、意见反馈、版本信息
     */
    @Override
    public List<ZftMyManager> selectZftMyManagerList(ZftMyManager zftMyManager)
    {
        return zftMyManagerMapper.selectZftMyManagerList(zftMyManager);
    }

    /**
     * 新增我的管理，我的课程记录、违规记录、意见反馈、版本信息
     * 
     * @param zftMyManager 我的管理，我的课程记录、违规记录、意见反馈、版本信息
     * @return 结果
     */
    @Override
    public int insertZftMyManager(ZftMyManager zftMyManager)
    {
        //设置创建时间
        zftMyManager.setCreateTime(new Date());
        //设置修改时间
        zftMyManager.setUpdateTime(new Date());
        return zftMyManagerMapper.insertZftMyManager(zftMyManager);
    }

    /**
     * 修改我的管理，我的课程记录、违规记录、意见反馈、版本信息
     * 
     * @param zftMyManager 我的管理，我的课程记录、违规记录、意见反馈、版本信息
     * @return 结果
     */
    @Override
    public int updateZftMyManager(ZftMyManager zftMyManager)
    {
        return zftMyManagerMapper.updateZftMyManager(zftMyManager);
    }

    /**
     * 批量删除我的管理，我的课程记录、违规记录、意见反馈、版本信息
     * 
     * @param myUuids 需要删除的我的管理，我的课程记录、违规记录、意见反馈、版本信息主键
     * @return 结果
     */
    @Override
    public int deleteZftMyManagerByMyUuids(String[] myUuids)
    {
        return zftMyManagerMapper.deleteZftMyManagerByMyUuids(myUuids);
    }

    /**
     * 删除我的管理，我的课程记录、违规记录、意见反馈、版本信息信息
     * 
     * @param myUuid 我的管理，我的课程记录、违规记录、意见反馈、版本信息主键
     * @return 结果
     */
    @Override
    public int deleteZftMyManagerByMyUuid(String myUuid)
    {
        return zftMyManagerMapper.deleteZftMyManagerByMyUuid(myUuid);
    }

    /**
     * 我的管理记录分页（新）
     * @param zftMyManagerDTO
     * @return
     */
    @Override
    public PageResult pageSelectZftMyManager(ZftMyManagerDTO zftMyManagerDTO) {
        PageHelper.startPage(zftMyManagerDTO.getPageNum(), zftMyManagerDTO.getPageSize());
        //该插件的规则 需要返回一个page对象
        Page<ZftMyManager> page =  zftMyManagerMapper.pageSelectZftMyManager(zftMyManagerDTO);

        //查询主表用于显示分页总数
//        Page<ZtfMainTables> mainTablesPage =  ztfAppMainTablesMapper.SelectByZtfMainTable();
        //调用PageHelper中的方法获取总条数和数据
        long total = page.getTotal();

        int pageNum=page.getPageNum();

        int pageSize=page.getPageSize();
        List<ZftMyManager> zftMyManagerList = page.getResult();

        return new PageResult(total,zftMyManagerList,pageNum,pageSize);
    }

}
